package com.hiss.basic.model.system.request;

import com.hiss.basic.model.system.domain.SysUserDomain;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * 系统用户创建请求
 */
@Data
@AutoMapper(target = SysUserDomain.class)
public class SysUserCreateRequest implements Serializable {

    private static final long serialVersionUID = 1;

    /**
     * 用户名
     */
    @NotBlank(message = "用户名不能为空")
    private String username;

    /**
     * 昵称
     */
    @NotBlank(message = "用户昵称不能为空")
    private String nickname;

    /**
     * 头像
     */
    private String avatar;

    /**
     * 邮箱地址
     */
    private String email;

    /**
     * 部门 ID
     */
    @NotNull(message = "用户部门 ID 不能为空")
    private Long deptId;

    /**
     * 角色 ID
     */
    private List<Long> roleIdList;

    /**
     * 启用状态
     *
     * @see com.hiss.basic.starter.core.enums.EnableStatusEnum
     */
    @NotNull(message = "启用状态不能为空")
    @Range(min = 0, max = 1, message = "非法启用状态值")
    private Integer enableStatus;
}
